package org.springblade.modules.repair.dto;

import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.sql.Struct;
import java.util.Date;
import java.util.List;

/**
 * 个人工单维修新版DTO
 * 基于原本DTO封装状态与分页信息
 *
 * @author: Sharry
 * @createTime: 2023/2/21 10:05
 * @version: Version-1.0
 */
@Data
public class RepairPlanHistoryDTO {

	@ApiModelProperty("用户id")
	private Long userId;

	@ApiModelProperty("维修工单状态 2->待开始 3->进行中 4->已完成")
	private Integer status;

	/**
	 * 可以为空，为空时按原逻辑查询
	 */
	@ApiModelProperty("根据报障时间排序,ASC、DESC")
	private String planDateSort;

	@ApiModelProperty("工单完成时间排序")
	private String planFishDateSort;

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "报障查询开始时间")
	private Date planBeginDate;

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "报障查询结束时间")
	private Date planEndDate;

	/**
	 * 封装分页信息：current
	 */
	@ApiModelProperty("当前页")
	private Integer current;

	/**
	 * 封装分页信息：size
	 */
	@ApiModelProperty("每页大小")
	private Integer size;

	@ApiModelProperty(value = "开始时间")
	private Date startTime;

	@ApiModelProperty(value = "结束时间")
	private Date endTime;

	@ApiModelProperty("电梯id")
	private Long elevatorId;

	@ApiModelProperty("电梯状态： 1-正常,2-停梯")
	private List<Integer> elevatorStop;

	@ApiModelProperty("问题描述项，dict_key拼接")
	private List<String> problemItems;

	@ApiModelProperty("签到 1-正常 2-签到定位异常 3-签退定位异常 4-系统代签")
	private List<Integer> sign;

	@ApiModelProperty("搜索关键字")
	private String keyword;

	/**
	 * 紧急程度
	 */
	private Integer emerProcType;

	@ApiModelProperty("1:转派工单")
	private Integer giveStatus;

	@ApiModelProperty("1:转派工单-用于前端好处理逻辑")
	private List<String> giveStatuss;


	@ApiModelProperty("评分状态 0-未评分，1-已评分")
	private Integer scoreStatus;

	@ApiModelProperty("评分类型1:有效订单，2：无效工单3：无法判断")
	private List<Integer> scoreTypes;


	public void setGiveStatuss(List<String> giveStatuss) {
		if (giveStatuss != null && giveStatuss.size() > 0) {
			this.giveStatus = Convert.toInt(giveStatuss.get(0));
		}
		this.giveStatuss = giveStatuss;
	}

}
